﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.Text.RegularExpressions;
using System.Data.SqlClient;

namespace FrbaCommerce.Clases
{
    public class Compra
    {
        public int id { get; set; }
        public decimal cod_publi {get; set;}
        public int usuario { get; set; }
        public DateTime fecha { get; set; }
        public int cantidad { get; set; }

        public void setDatos(decimal cod_publi, int usuario, int cantidad) 
        {
            this.cod_publi = cod_publi;
            this.usuario = usuario;
            this.cantidad = cantidad;
        }

        /*INSERTA EN LA BITACORA DE Compras*/
        public void guardar()
        {
            ConexionSql conexion = new ConexionSql();
            String query = "INSERT INTO ASDF.Bitacora_Compras(cod_publi, usuario, cantidad) ";
            query += " VALUES (";
            query += this.cod_publi + "," + this.usuario + "," + this.cantidad + ")";

            try
            {
                conexion.ejecutarConsulta(query);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problema de conexión con la BD: " + ex.Message);
            }
        }

        public List<Compra> obtenerComprasPublicacion(Int32 cod_pub)
        {
            List<Compra> compras = new List<Compra>();
            string query = "SELECT * FROM ASDF.Bitacora_Compras WHERE cod_publi = " + cod_pub + " ";
            ConexionSql conexionSql = new ConexionSql();
            DataSet datos = new DataSet();
            datos = conexionSql.ejecutarConsulta(query);
            if (datos.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow fila in datos.Tables[0].Rows)
                {
                    compras.Add(this.cargarCompra(fila));
                }
            }
            return compras;  
        }

        public Compra obtenerSubastaFinalizada(Int32 cod_pub)
        {
            Compra compra = new Compra();
            string query = "SELECT * FROM ASDF.Bitacora_Compras WHERE cod_publi = " + cod_pub + " ";
            ConexionSql conexionSql = new ConexionSql();
            DataSet datos = new DataSet();
            datos = conexionSql.ejecutarConsulta(query);
            if (datos.Tables[0].Rows.Count > 0)
            {
                compra = this.cargarCompra(datos.Tables[0].Rows[0]);
            }            
            return compra;  
        }
        private Compra cargarCompra(DataRow fila)
        {
            Compra c = new Compra();
            c.id = Convert.ToInt32(fila.ItemArray[0].ToString());
            c.cod_publi = Convert.ToInt32(fila.ItemArray[1].ToString());
            c.fecha = Convert.ToDateTime(fila.ItemArray[2].ToString());
            c.cantidad = Convert.ToInt32(fila.ItemArray[3].ToString());
            return c;
        }

    }
}
